package syn;

/**
 * @author mubei
 * @date 2021/11/20
 * @description   不安全的取钱
 */
public class UnsafeBank {

    public static void main(String[] args) {
        Account account = new Account(100, "私房钱啊");

        Drawing drawing = new Drawing(account, 50, "mubei");
        Drawing drawing2 = new Drawing(account, 90, "ah");

        drawing.start();
        drawing2.start();
    }
}


class Account{
    int money;
    String name;

    public Account(int money, String name) {
        this.money = money;
        this.name = name;
    }
}

class Drawing extends Thread {

    Account account;
    int drawingMoney;
    int nowMoney;


    public Drawing(Account account, int drawingMoney, String name) {
        super(name);
        this.account = account;
        this.drawingMoney = drawingMoney;
    }

    @Override
    public void run(){
        synchronized(account){
            if(account.money - drawingMoney < 0){
                System.out.println(Thread.currentThread().getName()+"钱不够了 取不了");
                return ;
            }
            try {
                this.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            account.money -=  drawingMoney;
            nowMoney +=drawingMoney;

            System.out.println(account.name+"余额为:"+account.money);
            System.out.println(this.getName()+"手里的钱"+nowMoney);// Thread.curren
        }

    }
}